home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 6 / cmerge.zip / SIEVE.ASM < prev    next >
Assembly Source File  |  1987-06-08  |  2KB  |  146 lines

  1.     .186
  2.     name    sieve
  3. _text    segment    byte public 'code'
  4. dgroup    group    _data,_bss
  5.     assume    cs:_text,ds:dgroup,ss:dgroup
  6. _text    ends
  7. _data    segment word public 'data'
  8. _d@    label    byte
  9. _data    ends
  10. _bss    segment word public 'bss'
  11. _b@    label    byte
  12. _bss    ends
  13. _data    segment word public 'data'
  14.     public    _flags
  15. _flags    label    byte
  16.     db    0
  17.     db    8190 dup (?)
  18. _data    ends
  19. _text    segment    byte public 'code'
  20. ; Line 16
  21. _main    proc    near
  22.     push    si
  23.     push    di
  24.     enter    4,0
  25. ; Line 17
  26. ; Line 18
  27. ; Line 19
  28. ; Line 20
  29.     db    104    ; push immediate
  30.     dw    150
  31.     mov    ax,offset _s@
  32.     push    ax
  33.     call    near ptr _printf
  34.     add    sp,4
  35. ; Line 21
  36. ; Line 22
  37.     mov    word ptr [bp-4],1
  38.     jmp    short @5
  39. @4:
  40. ; Line 23
  41. ; Line 24
  42.     mov    word ptr [bp-2],0
  43. ; Line 25
  44.     xor    si,si
  45.     jmp    short @9
  46. @8:
  47. ; Line 26
  48.     mov    byte ptr dgroup:_flags[si],1
  49.     inc    si
  50. @9:
  51.     cmp    si,8190
  52.     jle    @8
  53. ; Line 27
  54. ; Line 28
  55.     mov    si,2
  56.     jmp    short @13
  57. @12:
  58. ; Line 29
  59. ; Line 30
  60.     cmp    byte ptr dgroup:_flags[si],0
  61.     je    @11
  62. ; Line 31
  63. ; Line 32
  64.     mov    di,si
  65.     add    di,si
  66.     jmp    short @18
  67. @17:
  68. ; Line 33
  69.     mov    byte ptr dgroup:_flags[di],0
  70.     add    di,si
  71. @18:
  72.     cmp    di,8190
  73.     jle    @17
  74. ; Line 34
  75.     inc    word ptr [bp-2]
  76. ; Line 35
  77. ; Line 36
  78. @11:
  79.     inc    si
  80. @13:
  81.     cmp    si,8190
  82.     jle    @12
  83. ; Line 37
  84.     inc    word ptr [bp-4]
  85. @5:
  86.     cmp    word ptr [bp-4],150
  87.     jle    @4
  88. ; Line 38
  89. ; Line 39
  90.     push    word ptr [bp-2]
  91.     mov    ax,offset _s@+16
  92.     push    ax
  93.     call    near ptr _printf
  94.     add    sp,4
  95. ; Line 40
  96. ; Line 41
  97.     db    106    ; push immediate
  98.     db    0
  99.     call    near ptr _exit
  100.     inc    sp
  101.     inc    sp
  102. ; Line 42
  103. ; Line 43
  104.     leave    
  105.     pop    di
  106.     pop    si
  107.     ret    
  108. _main    endp
  109. _text    ends
  110. _data    segment word public 'data'
  111. _s@    label    byte
  112.     db    37
  113.     db    100
  114.     db    32
  115.     db    105
  116.     db    116
  117.     db    101
  118.     db    114
  119.     db    97
  120.     db    116
  121.     db    105
  122.     db    111
  123.     db    110
  124.     db    115
  125.     db    58
  126.     db    32
  127.     db    0
  128.     db    37
  129.     db    100
  130.     db    32
  131.     db    112
  132.     db    114
  133.     db    105
  134.     db    109
  135.     db    101
  136.     db    115
  137.     db    10
  138.     db    0
  139. _data    ends
  140. _text    segment    byte public 'code'
  141.     extrn    _exit:near
  142.     extrn    _printf:near
  143.     public    _main
  144. _text    ends
  145.     end
  146.